package com.docmgmt.mvp.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 知识库同步消息（MQ消息体）
 *
 * 消息类型：
 * - UPLOAD: 文件上传后同步到RAGFlow
 * - DELETE: 文件删除后从RAGFlow移除
 * - UPDATE: 文件更新后重新解析
 *
 * @author Dora
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class KbSyncMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 文件ID */
    private Long fileId;

    /** 操作类型：UPLOAD/DELETE/UPDATE */
    private String action;

    /** 知识库ID（可选，默认使用company_main_kb） */
    private Long kbId;

    /** 重试次数（用于死信队列） */
    private Integer retryCount;

    public KbSyncMessage(Long fileId, String action) {
        this.fileId = fileId;
        this.action = action;
        this.retryCount = 0;
    }
}
